package main

import (
	"fmt"
	"sync"
)

var (
	COUNT = 10
	wg    sync.WaitGroup
)

// 类似java的countdow latch
// 主线程等待子线程结束后再
// attention!!! 次数的线程其实就是go的协程
func count_down_latch() {
	fmt.Println("sub finished！")
	wg.Done()

}

func main() {
	wg.Add(COUNT)
	for i := 0; i < COUNT; i++ {
		go count_down_latch()
	}
	wg.Wait() // 阻塞主线程等待子线程执行完
	fmt.Println("main finished！")
}
